
package com.insigma.business.qrcode.soldier._provider;

import com.alibaba.fastjson.JSONObject;
import com.insigma.business.qrcode.common.annotation.ApiServiceType;
import com.insigma.business.qrcode.common.vo.BaseResponse;
import com.insigma.business.qrcode.soldier.dto.FaceRecognitionDTO;
import com.insigma.business.qrcode.soldier.dto.LoggedInDTO;
import com.insigma.business.qrcode.soldier.request.AlipayLifeOauth2UrlGetRequest;
import com.insigma.business.qrcode.soldier.request.AlipayXcxOAuth2Request;
import com.insigma.business.qrcode.soldier.request.ModifyPwdDirectlyRequest;


public interface SoldierSecurityProvider {

    
    @ApiServiceType(value = "soldier.ss.privilege.security.alipay.oauth2.url.get", name = "老兵生活号h5授权url获取", desc = "老兵生活号h5授权url获取")
    BaseResponse<String> getAlipayOauth2Url(final AlipayLifeOauth2UrlGetRequest alipayLifeOauth2UrlGetRequest);










    
    @ApiServiceType(value = "soldier.ss.privilege.security.logout", name = "老兵生活号移动端退出登录", desc = "老兵生活号移动端退出登录")
    BaseResponse<Integer> logout();

    
    @ApiServiceType(value = "soldier.ss.privilege.security.modifyPassword", name = "修改密码", desc = "修改密码")
    BaseResponse modifyPassword(final ModifyPwdDirectlyRequest request);

    
    @ApiServiceType(value = "soldier.ss.privilege.security.getLoggedIn", name = "获取登录用户", desc = "获取登录用户")
    BaseResponse<JSONObject> getLoggedIn();

    
    @ApiServiceType(value = "soldier.ss.privilege.security.xcx.login", name = "获取登录用户", desc = "获取登录用户")
    BaseResponse<LoggedInDTO> getAliXcxToken(final AlipayXcxOAuth2Request request);



    
    @ApiServiceType(value = "soldier.ss.privilege.security.face.recognition.placement", name = "安置人脸识别", desc = "安置人脸识别", opsLog = "安置")
    BaseResponse<FaceRecognitionDTO> getFaceRecognitionByPlacement();



}
